// 2025/5/10
// 求和

#include <iostream>
#include <vector>
using namespace std;

vector<int> ans;
void dfs(int n, int m, int cur)
{
    if(m == 0)
    {
        for(auto& num : ans)
            cout << num << " ";
        cout << endl;
        return;
    }
    if(cur > n)
        return;

    for(int i = cur; i <= n; i++)
    {
        if(m - i >= 0)
        {
            ans.emplace_back(i);
            dfs(n, m - i, i + 1);
            ans.pop_back();
        }
        else
            break;
    }
}

int main() {
    int n, m; 
    cin >> n >> m;
    dfs(n, m, 1);
    return 0;
}
// 64 位输出请用 printf("%lld")